package com.zx.dsptuneup_cloud.Tools;

public class HexadecimalConversion {
    private static final String TAG = "InputUtil";

    private static  Double samplingRate = 48000.0;// 采样率
    private static  Double centerPoint  = 2000.0;// 中心频点
    private static  Double totalGain    = 2.0; // 总增益
    private static  Double QValue       = 1.41; // Q值
    private static  Double b5           = 0.0; //中间量
    private static  Double b6           = 0.0; //中间量
    private static  Double b7           = 0.0; //中间量
    private static  Double b8           = 0.0; //中间量
    private static  Double b9           = 0.0; //中间量
    private static  Double b10          = 0.0; //中间量
    private static  Double b12          = 0.0;
    private static  Double b13          = 0.0;
    private static  Double b14          = 0.0;
    private static  Double b15          = 0.0;
    private static  Double b16          = 0.0;

//    /// 查询指令
//    /// - Parameter type:  0 查询静音数据 1 查询增益数据 2 查询延时混响数据 3 查询高低音数据
//    /// - Parameter tag: <#tag description#>
//    public void  setQUERY(String type) {
//        String setQUERY = Constants.SendCommandEum.QUERY + type;
//        App.getContext().getNettyClient().sendMsgToServer(setQUERY, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG, setQUERY + "Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 静音设置
//    /// - Parameter type: 线路
//    /// - Parameter state: 关闭 0 开启 1
//    public void sendMute(String type ,boolean state) {
//        String setMute = Constants.SendCommandEum.MUTE + type + ":" + (state == true ? "1" : "0");
//        Log.d(TAG,"setMute === "+setMute);
//        App.getContext().getNettyClient().sendMsgToServer(setMute, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "setMute Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 麦克风互斥
//    ///
//    /// - Parameters:
//    ///   - state: state: 关闭 0 开启 1  默认开启
//    ///   - tag: <#tag description#>
//    public void sendMicMutex(boolean state) {
//        String sendMicMutex = Constants.SendCommandEum.MICMUTEX + (state == true ? "1" : "0");
//        Log.d(TAG,"sendMicMutex === "+sendMicMutex);
//        App.getContext().getNettyClient().sendMsgToServer(sendMicMutex, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "sendMicMutex Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// EQxmose指令
//    ///
//    /// - Parameters:
//    ///   - state: state: 关闭 0 开启 1  默认关闭
//    ///   - tag: <#tag description#>
//    public void sendXmoseEQ(boolean state) {
//        String sendXmoseEQ = Constants.SendCommandEum.SETXMOSEQ + (state == true ? "1" : "0");
//        Log.d(TAG,"sendXmoseEQ === "+sendXmoseEQ);
//        App.getContext().getNettyClient().sendMsgToServer(sendXmoseEQ, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "sendXmoseEQ Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 蓝牙讲话开启
//    /// - Parameters:
//    ///   - state: 关闭 0 开启 1
//    ///   - tag:
//    public void sendTalk(boolean state,int tag){
//        String sendTalk = Constants.SendCommandEum.TALK + (state == true ? "1" : "0");
//        Log.d(TAG,"sendTalk === "+sendTalk);
//        App.getContext().getNettyClient().sendMsgToServer(sendTalk, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "sendTalk Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 麦克风互斥
//    ///
//    /// - Parameters:
//    ///   - state: state: 关闭 0 开启 1  默认开启
//    ///   - tag: <#tag description#>
//    public void sendMicMutex(boolean state,int tag) {
//        String sendMicMutex = Constants.SendCommandEum.MICMUTEX + (state == true ? "1" : "0");
//        Log.d(TAG,"sendMicMutex === "+sendMicMutex);
//        App.getContext().getNettyClient().sendMsgToServer(sendMicMutex, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "sendMicMutex Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 恢复配置
//    ///
//    /// - Parameters:
//    ///   - restore: 配置二进制，对应位置1，表示恢复 目前静音，手麦和蓝牙
//    ///   - tag: <#tag description#>
//    public void setRESTORE() {
//        int temp = binTodec("00001111");
//        String SETRESTORE = Constants.SendCommandEum.RESTORE + TenToSix(temp);
//        App.getContext().getNettyClient().sendMsgToServer(SETRESTORE, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "SETRESTORE Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//
//    //   EQ调节
//    public void setEQ2(double qValue,double totalGain,double centerPoint,String passagewayID/*0~6*/,int fPointID/*0~9*/) {
//
//        String str = EQAlgorithmicA(qValue, totalGain, centerPoint);
////        str = "0.FF.1C.C0.FE.01.5A.73.0.FF.89.F1.FF.01.59.4E.1.FE.A5.8C";
//
//        String setFrequencyPoint = Constants.SendCommandEum.EQ + passagewayID + ":" + fPointID + ":" + str;
//
//        Log.d(TAG,"setFrequencyPoint === "+setFrequencyPoint);
//
//        App.getContext().getNettyClient().sendMsgToServer(setFrequencyPoint, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "setFrequencyPoint Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//
//    }
//
//    /// EQ算法
//    /// - Parameters:
//    ///   - qValue: Q值
//    ///   - totalGain: 增益值
//    ///   - centerPoint: 频点值
//    public  String EQAlgorithmicA(double qValue,double totalGain,double centerPoint)  {
//        String setFrequencyPoint = ""; // 需要传送的字符串
//        String send1 = "";
//        String send2 = "";
//        String send3 = "";
//        String send4 = "";
//        String send5 = "";
//        String send6 = "";
//        String send7 = "";
//        String send8 = "";
//        String send9 = "";
//        String send10 = "";
//        String send11 = "";
//        String send12 = "";
//        String send13 = "";
//        String send14 = "";
//        String send15 = "";
//        String send16 = "";
//        String send17 = "";
//        String send18 = "";
//        String send19 = "";
//        String send20 = "";
//        String b12Str = "";
//        String b13Str = "";
//        String b14Str = "";
//        String b15Str = "";
//        String b16Str = "";
//        b5 = Math.pow(10,totalGain/40);// 计算多次幂
//        b6 = 2* Math.PI*centerPoint/samplingRate;
//        b7 = Math.sin(b6);
//        b8 = Math.cos(b6);
//        double qValueNew = qValue;
//        if (qValue == 0) {
//            qValueNew = 0.0000001; //不给设置为零
//        }
//        b9 = b7/(2*qValueNew);
//        b10 = 1/(1+(b9/b5));
//
//        b12 = b10*(1-(b9*b5));
//        b13 = -2*b10*b8;
//        b14 = b10*(1+b9*b5);
//        b15 = -1*(b10*(1-(b9/b5)));
//        b16 = -1*b13;
//
//        b12Str = tenDecimalToSixTeen(b12);
//        String str1 = b12Str.split("[,]")[0];
//        String str2 = b12Str.split("[,]")[1];
//        send1 = str1;
//        send2 = str2.substring(0,2);
//        send3 = str2.substring(2,4);
//        send4 = str2.substring(4,6);
//
//        b13Str = tenDecimalToSixTeen(b13);
//        String str5 = b13Str.split("[,]")[0];
//        String str6 = b13Str.split("[,]")[1];
//        send5 = str5;
//        send6 = str6.substring(0,2);
//        send7 = str6.substring(2,4);
//        send8 = str6.substring(4,6);
//
//        b14Str = tenDecimalToSixTeen(b14);
//        String str9 = b14Str.split("[,]")[0];
//        String str10 = b14Str.split("[,]")[1];
//        send9 = str9;
//        send10 = str10.substring(0,2);
//        send11 = str10.substring(2,4);
//        send12 = str10.substring(4,6);
//
//        b15Str = tenDecimalToSixTeen(b15);
//        String str13 = b15Str.split("[,]")[0];
//        String str14 = b15Str.split("[,]")[1];
//        send13 = str13;
//        send14 = str14.substring(0,2);
//        send15 = str14.substring(2,4);
//        send16 = str14.substring(4,6);
//
//        b16Str = tenDecimalToSixTeen(b16);
//        String str17 = b16Str.split("[,]")[0];
//        String str18 = b16Str.split("[,]")[1];
//        send17 = str17;
//        send18 = str18.substring(0,2);
//        send19 = str18.substring(2,4);
//        send20 = str18.substring(4,6);
//
//        setFrequencyPoint =  send1 + "." + send2 + "." + send3 + "." + send4 + "." + send5 + "." + send6 + "." + send7 + "." + send8 + "." + send9 + "." + send10 + "." + send11 + "." + send12 + "." + send13 + "." + send14 + "." + send15 + "." + send16 + "." + send17 + "." + send18 + "." + send19 + "." + send20;
//        return setFrequencyPoint;
//    }
//
//
//
//     //  输入端发送增益，type:类型
//    public void sendTotalgain(int value,String type) {
//        String str  = "";
//        double totalgain = Math.pow(10,((double)value)/20); //*20固定*/
//        String setGain = ""; // 需要传送的字符串
//
//        String currentvalue = TenToSix(value);
//
//        String tempStr = tenDecimalToSixTeen(totalgain);
//        String temp1 = tempStr.split("[,]")[0];
//        String temp2 = tempStr.split( "[,]")[1];
//
//        String send1 = temp1;
//        String send2 = temp2.substring(0,2);
//        String send3 = temp2.substring(2,4);
//        String send4 = temp2.substring(4,6);
//
//        setGain = Constants.SendCommandEum.GAIN + type/*总增益是0*/ + ":" + send1 + "." + send2 + "." + send3 + "." + send4 + "." + currentvalue;
//        Log.d(TAG,"setGain1=====" + setGain);
//        App.getContext().getNettyClient().sendMsgToServer(setGain, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "setGain Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /*   输出端增益调节
//     *   0 - 63 以3步进
//     *   -10 - 10
//     */
//    public void sendTotalgain2(int value,String type) {
//        //warning# ("焊脚反了，value取反"),后面的版本不再反
//        int  varseValue = value;
////        if (varseValue != 0) {
////            varseValue = -value;
////        }
//
//        double step0  = 0;
//        double fab =  Math.abs(varseValue + 10);
//        double currentStep = step0 + fab*3;
//        String setGain = ""; // 需要传送的字符串
//
//        String currentvalue = TenToSix(varseValue);
//        String currentStepSixten = TenToSix((int) currentStep);
//
//        setGain = Constants.SendCommandEum.GAIN + type/*总增益是0*/ + ":" + currentStepSixten + "." + "0" + "." + "0" + "." + "0" + "." + currentvalue;
////        Log.d(TAG,"setGain2=====" + setGain);
//        App.getContext().getNettyClient().sendMsgToServer(setGain, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "setGain2 Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 混响控制
//    /// - Parameter reverberation: 混响值 0 0.5 1 1.5 2 2.5 3 3.5 -> 0 8 16 24 32 40 48 56
//    /// - Parameter tag: <#tag description#>
//    public void sendECHO(double reverberation) {
//        String sendECHO = ""; //发送的字符串
//        int step = 0; // 混响步进
//        int reverberationNew = (int)(reverberation * 10);// 乘10 转Int
//        switch (reverberationNew){
//            case 0:
//                step = 0;
//                break;
//            case 5:
//                step = 8;
//                break;
//            case 10:
//                step = 16;
//                break;
//            case 15:
//                step = 24;
//                break;
//            case 20:
//                step = 33;
//                break;
//            case 25:
//                step = 40;
//                break;
//            case 30:
//                step = 48;
//                break;
//            case 35:
//                step = 56;
//                break;
//            default:
//                step = 0;
//                break;
//        }
//        sendECHO = Constants.SendCommandEum.ECHO + TenToSix(step) + ":" + TenToSix(reverberationNew);
//        Log.d(TAG,"sendECHO=====" + sendECHO);
//        App.getContext().getNettyClient().sendMsgToServer(sendECHO, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,   "sendECHO Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 高低音控制
//    /// - Parameter treble: 高音
//    /// - Parameter bass: 低音
//    /// - Parameter tag: tag
//    public void setHIBS(int treble,int bass) {
//        String setHIBS = ""; // 发送的字符串
//        int trebleInt = Integer.parseInt(highAndLowPitchToStep(treble));
//        int bassInt   = Integer.parseInt(highAndLowPitchToStep(bass));
//
//        setHIBS = Constants.SendCommandEum.HIBS + TenToSix(trebleInt)  + ":" + TenToSix(bassInt) + ":" + TenToSix(treble) + ":" + TenToSix(bass);
//        Log.v(TAG,"setHIBS == " + setHIBS);
//        App.getContext().getNettyClient().sendMsgToServer(setHIBS, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,  "setHIBS Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /*设备灵敏度*/
//    public void setMICSSTVT(String sstvt) {
//        String SETMICSSTVT = Constants.SendCommandEum.SETMICSSTVT + sstvt;
//        Log.v(TAG,"SETMICSSTVT == " + SETMICSSTVT);
//        App.getContext().getNettyClient().sendMsgToServer(SETMICSSTVT, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {
//                    Log.d(TAG,  "SETMICSSTVT Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//
//    /// Wifi名称和密码设置
//    /// - Parameter wifiName: 名称最长32个字节
//    /// - Parameter wifiPass: 密码最长15个字节
//    /// - Parameter tag: <#tag description#>
//    public void setWIFI(String wifiName,String wifiPass) {
//        String setWIFI = Constants.SendCommandEum.WIFI + "\"" + wifiName + "\"" + "." + "\"" + wifiPass + "\"";
//        App.getContext().getNettyClient().sendMsgToServer(setWIFI, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,  "setWIFI Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//
//    /// 蓝牙名称和密码设置
//    /// - Parameter 蓝牙Name: 名称最长32个字节
//    /// - Parameter bluePass: 密码最长15个字节
//    /// - Parameter tag: <#tag description#>
//    public void setBLUE(String blueName,String bluePass) {
//        String SETBLUE = Constants.SendCommandEum.BLUE + "\"" + blueName + "\"" + "." + "\"" + bluePass + "\"";
//        App.getContext().getNettyClient().sendMsgToServer(SETBLUE, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//                if (channelFuture.isSuccess()) {                //4
//                    Log.d(TAG,  "SETBLUE Write auth successful");
//                } else {
//                    Log.d(TAG, "Write auth error");
//                }
//            }
//        });
//    }
//
//    /// 手麦设置
//    /// - Parameter singal: 信道
//    /// - Parameter volume: 音量
//    /// - Parameter tag: <#tag description#>
//    public void setULES(String singal,String volume) {
//        String SETULES = Constants.SendCommandEum.ULES + TenToSix(Integer.parseInt(singal)) + ":" + TenToSix(Integer.parseInt(volume));
//        Log.v(TAG,"SETULES == " + SETULES);
//        App.getContext().getNettyClient().sendMsgToServer(SETULES, new ChannelFutureListener() {
//            @Override
//            public void operationComplete(ChannelFuture channelFuture) throws Exception {
//
//            }
//        });
//    }
//
//    //高低音 -> 对应的步进值
//    private String highAndLowPitchToStep(int value) {
//        switch (value) {
//            case -7:
//                return "0";
//            case -6:
//                return "4";
//            case -5:
//                return "8";
//            case -4:
//                return "12";
//            case -3:
//                return "16";
//            case -2:
//                return "20";
//            case -1:
//                return "24";
//            case 0:
//                return "28";
//            case 1:
//                return "32";
//            case 2:
//                return "36";
//            case 3:
//                return "40";
//            case 4:
//                return "44";
//            case 5:
//                return "48";
//            case 6:
//                return "52";
//            case 7:
//                return "56";
//            case 8:
//                return "61";
//            default:
//                return "0";
//        }
//    }
//
//
//    /******进制之间转换,使用本协议**************************************************************************************************/

//    /**
//     *  负数小数，不通用，根据本协议传
//     *  整数部分和小数用，分割
//     * */
//    public static String tenDecimalToSixTeen(double number) {
//        String sixTeen = "";
//        int intPart =  (int)number;
//        double decPart = number - intPart + 1;
//        decPart = decPart -  Math.floor(decPart);
//        if (number > 0) {
//            String intPartComplement = TenToSix((int)intPart);
//            sixTeen = sixTeen + intPartComplement ;
//        }else{
//            double intPartComplement = 0xFF - Math.abs(intPart);
////            let intPartComplement =  TenToSix(number: abs(Int(number)))
//            sixTeen = sixTeen + TenToSix((int)intPartComplement) ;
//        }
//
//        double tenNew = decPart; // 新
//        int    sixInt = 0;
//        double tenDouble = 0;
//        for (int i = 0;i<6;i++){   /*由于协议中需要传的是六位*/
//            sixInt =  (int) Math.floor(tenNew * 16);
//            tenDouble = tenNew * 16;
//            sixTeen += decTohex(sixInt);
//            tenNew = tenDouble - (double)sixInt;
//        }
//        //十六进制h转二进制
//        return sixTeen;
//    }
////
////
//    /// 十进制转十六进制  整数可以使用
//    /// - Parameter number: <#number description#>
//    public static String decTohex(int number) {
//        return Integer.toHexString(number).toUpperCase();
//    }
//
//
//    /// 10进制转16进制
//    ///  负数 高位取1，转16进制
//    /// - Parameter number: 整数
//    /// - Returns: 串
//    public static String TenToSix(int number) {
//        if (number < 0 ){
//            int temp = number;
//            temp =  Math.abs(number);
//            temp = temp|0x80;
//            return TenToSix(temp);
//        }else{
//            //  10进制转16进制
//            return Integer.toHexString(number).toUpperCase();
//        }
//    }


}
